package com.karson.common.response;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.karson.common.model.UserAction;
import com.karson.common.vo.ActionStatusVo;
import com.karson.common.vo.MemberVo;
import com.karson.common.vo.ReplyControl;
import com.karson.common.vo.UserVo;
import lombok.Data;

/**
 * 评论表
 * @author ZKS
 * @TableName ar_album_comment
 */
@TableName(value ="ar_album_comment")
@Data
public class CommentResponse implements Serializable {
    /**
     * 评论id
     */
    @TableId
    private Integer id;
    /**
     * 根评论
     */
    private Integer rootId;
    /**
     * 父评论id（为空表示根评论）
     */
    private Integer parentId;

    /**
     * 评论实体id
     */
    private Integer messageId;

    /**
     * 评论正文（支持富文本，标签跳转啊，啥的）
     */
    private String content;

    private Integer replyCount;
    /**
     * 用户信息
     */
    private MemberVo member;

    /**
     * 评论状态（0正常,1审核中,2删除,3屏蔽等）
     */
    private boolean status;

    private Integer like;

    private Integer dislike;

    /**
     * 子节点
     */
    private List<CommentResponse> replies;
    /** 是否置顶 */
    private Boolean isTop;
    /** 子评论相关文本 */
    private String subReplyEntryText;
    /** 发布时间 */
    private String timeDesc;
    /** 用户对评论的操作状态 */
    private ActionStatusVo userActions;
    /**
     * 创建时间
     */
    private Date createTime;

    @Serial
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}